#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int g_test = 1;	//整个程序的生命周期。   

// 1.作用域:变量的作用域在哪里使用,哪里就是变量的作用域。
extern void Scope_varible();
// 2.生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
extern void Globaland_local();

int main(void)
{
	Scope_varible();	// 变量的作用域
	Globaland_local();  // 全局和局部
	return 0;
}

void Scope_varible()
{
	int a = 10;								// 'a->'是在这个范围的，此时都可以被打印。因为它的作用域是在函数的大括号里面。
#if 0
	{
		int a = 10;							// 'a->'是在这个范围内申请的，出了这个范围'a'就无效了，因为它的这个作用域只是在这个'a'的大括号里面并不在这个函数里面。
		printf("在变量作用域范围%d\n", a);
	}
	printf("不在变量作用域范围%d\n", a);		// 'a'->未声明标识符。
#endif
}

void Globaland_local()
{
	int i = 2;	//进入函数{}作用域周期开始,出函数{}作用域生命周期结束。

	printf("全局变量g_test=%d\n", g_test);
	printf("局部变量i     =%d\n", i);
}